{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# OpenVINO example with Squeezenet Model\n",
    "\n",
    "This notebook illustrates how you can serve [OpenVINO](https://software.intel.com/en-us/openvino-toolkit) optimized models for Imagenet with Seldon Core.\n",
    "\n",
    "<img src=\"dog.jpeg\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dependencies\n",
    "\n",
    " * Seldon-core (```pip install seldon-core```)\n",
    " * Numpy\n",
    " * Keras\n",
    " * Matplotlib\n",
    " * Tensorflow"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Download Squeezenet Model\n",
    "\n",
    "We will download a pre-trained and optimized model for OpenVINO CPU into a local folder."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!mkdir -p models/squeezenet/1 && \\\n",
    "    wget -O models/squeezenet/1/squeezenet1.1.xml https://s3-eu-west-1.amazonaws.com/seldon-public/openvino-squeeznet-model/squeezenet1.1.xml && \\\n",
    "    wget -O models/squeezenet/1/squeezenet1.1.mapping https://s3-eu-west-1.amazonaws.com/seldon-public/openvino-squeeznet-model/squeezenet1.1.mapping && \\\n",
    "    wget -O models/squeezenet/1/squeezenet1.1.bin https://s3-eu-west-1.amazonaws.com/seldon-public/openvino-squeeznet-model/squeezenet1.1.bin "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Run Seldon Core on Minikube\n",
    "\n",
    "**The example below assumes Minikube 0.30.0 installed**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!minikube start --memory 4096 --disk-size 20g --extra-config=apiserver.authorization-mode=RBAC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "namespace/seldon created\r\n"
     ]
    }
   ],
   "source": [
    "!kubectl create namespace seldon"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Context \"minikube\" modified.\r\n"
     ]
    }
   ],
   "source": [
    "!kubectl config set-context $(kubectl config current-context) --namespace=seldon"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "clusterrolebinding.rbac.authorization.k8s.io/kube-system-cluster-admin created\r\n"
     ]
    }
   ],
   "source": [
    "!kubectl create clusterrolebinding kube-system-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "$HELM_HOME has been configured at /home/clive/.helm.\n",
      "\n",
      "Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.\n",
      "\n",
      "Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.\n",
      "To prevent this, run `helm init` with the --tiller-tls-verify flag.\n",
      "For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation\n",
      "Happy Helming!\n"
     ]
    }
   ],
   "source": [
    "!helm init"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Waiting for deployment \"tiller-deploy\" rollout to finish: 0 of 1 updated replicas are available...\n",
      "deployment \"tiller-deploy\" successfully rolled out\n"
     ]
    }
   ],
   "source": [
    "!kubectl rollout status deploy/tiller-deploy -n kube-system"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NAME:   seldon-core-crd\n",
      "LAST DEPLOYED: Sat Dec 22 09:59:12 2018\n",
      "NAMESPACE: seldon\n",
      "STATUS: DEPLOYED\n",
      "\n",
      "RESOURCES:\n",
      "==> v1beta1/Deployment\n",
      "NAME                        DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE\n",
      "seldon-spartakus-volunteer  1        1        1           0          0s\n",
      "\n",
      "==> v1/ServiceAccount\n",
      "NAME                        SECRETS  AGE\n",
      "seldon-spartakus-volunteer  1        0s\n",
      "\n",
      "==> v1beta1/ClusterRole\n",
      "NAME                        AGE\n",
      "seldon-spartakus-volunteer  0s\n",
      "\n",
      "==> v1beta1/ClusterRoleBinding\n",
      "NAME                        AGE\n",
      "seldon-spartakus-volunteer  0s\n",
      "\n",
      "==> v1/Pod(related)\n",
      "NAME                                         READY  STATUS             RESTARTS  AGE\n",
      "seldon-spartakus-volunteer-7d9895b6fb-529gz  0/1    ContainerCreating  0         0s\n",
      "\n",
      "==> v1/ConfigMap\n",
      "NAME                     DATA  AGE\n",
      "seldon-spartakus-config  3     0s\n",
      "\n",
      "==> v1beta1/CustomResourceDefinition\n",
      "NAME                                         AGE\n",
      "seldondeployments.machinelearning.seldon.io  0s\n",
      "\n",
      "\n",
      "NOTES:\n",
      "NOTES: TODO\n",
      "\n",
      "\n",
      "NAME:   seldon-core\n",
      "LAST DEPLOYED: Sat Dec 22 09:59:13 2018\n",
      "NAMESPACE: seldon\n",
      "STATUS: DEPLOYED\n",
      "\n",
      "RESOURCES:\n",
      "==> v1beta1/Deployment\n",
      "NAME                                DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE\n",
      "seldon-core-ambassador              1        1        1           0          0s\n",
      "seldon-core-seldon-apiserver        1        1        1           0          0s\n",
      "seldon-core-seldon-cluster-manager  1        1        1           0          0s\n",
      "seldon-core-redis                   1        1        1           0          0s\n",
      "\n",
      "==> v1/Pod(related)\n",
      "NAME                                                 READY  STATUS             RESTARTS  AGE\n",
      "seldon-core-ambassador-56cb8fc595-w4mwh              0/1    ContainerCreating  0         0s\n",
      "seldon-core-seldon-apiserver-59978fbf45-jmsh4        0/1    ContainerCreating  0         0s\n",
      "seldon-core-seldon-cluster-manager-5449b8dd5f-n4vzt  0/1    ContainerCreating  0         0s\n",
      "seldon-core-redis-567db9ddcf-69kkx                   0/1    ContainerCreating  0         0s\n",
      "\n",
      "==> v1/ServiceAccount\n",
      "NAME    SECRETS  AGE\n",
      "seldon  1        0s\n",
      "\n",
      "==> v1beta1/Role\n",
      "NAME          AGE\n",
      "seldon-local  0s\n",
      "ambassador    0s\n",
      "\n",
      "==> v1beta1/RoleBinding\n",
      "NAME        AGE\n",
      "ambassador  0s\n",
      "\n",
      "==> v1/RoleBinding\n",
      "seldon  0s\n",
      "\n",
      "==> v1/Service\n",
      "NAME                          TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)                        AGE\n",
      "seldon-core-ambassador-admin  NodePort   10.97.194.145  <none>       8877:31601/TCP                 0s\n",
      "seldon-core-ambassador        NodePort   10.96.238.87   <none>       80:30613/TCP,443:32714/TCP     0s\n",
      "seldon-core-seldon-apiserver  NodePort   10.99.192.133  <none>       8080:30641/TCP,5000:31603/TCP  0s\n",
      "seldon-core-redis             ClusterIP  10.108.244.48  <none>       6379/TCP                       0s\n",
      "\n",
      "\n",
      "NOTES:\n",
      "Thank you for installing Seldon Core.\n",
      "\n",
      "Documentation can be found at https://github.com/SeldonIO/seldon-core\n",
      "\n",
      "\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "!helm install ../../../helm-charts/seldon-core-crd --name seldon-core-crd  --set usage_metrics.enabled=true\n",
    "!helm install ../../../helm-charts/seldon-core --name seldon-core --set ambassador.enabled=true"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## (Optional) Install Jaeger\n",
    "\n",
    "We will use the Jaeger All-in-1 resource found at the [Jaeger Kubernetes repo](https://github.com/jaegertracing/jaeger-kubernetes)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml -n seldon"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Start Jaeger UI\n",
    "\n",
    "```\n",
    "minikube service jaeger-query -n seldon\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mount local folder onto minikube for HostPath\n",
    "Run in the current folder:\n",
    "```\n",
    "minikube mount ./models:/opt/ml\n",
    "```\n",
    "\n",
    "This will allow the model folder containing the Squeezenet model to be accessed. For production deployments you would use a NFS volume."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Build Combiner Image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---> Installing application source...\n",
      "Build completed successfully\n"
     ]
    }
   ],
   "source": [
    "!eval $(minikube docker-env) && cd resources/combiner && s2i build -E environment_grpc . seldonio/seldon-core-s2i-python36:0.5-SNAPSHOT seldonio/imagenet_combiner:0.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---> Installing application source...\n",
      "---> Installing dependencies ...\n",
      "Looking in links: /whl\n",
      "Requirement already satisfied: numpy>=1.8.2 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (1.15.4)\n",
      "Collecting keras (from -r requirements.txt (line 2))\n",
      "  Url '/whl' is ignored. It is either a non-existing path or lacks a specific scheme.\n",
      "Downloading https://files.pythonhosted.org/packages/5e/10/aa32dad071ce52b5502266b5c659451cfd6ffcbf14e6c8c4f16c0ff5aaab/Keras-2.2.4-py2.py3-none-any.whl (312kB)\n",
      "Requirement already satisfied: keras-applications>=1.0.6 in /usr/local/lib/python3.6/site-packages (from keras->-r requirements.txt (line 2)) (1.0.6)\n",
      "Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/site-packages (from keras->-r requirements.txt (line 2)) (1.12.0)\n",
      "Collecting scipy>=0.14 (from keras->-r requirements.txt (line 2))\n",
      "  Url '/whl' is ignored. It is either a non-existing path or lacks a specific scheme.\n",
      "Downloading https://files.pythonhosted.org/packages/67/e6/6d4edaceee6a110ecf6f318482f5229792f143e468b34a631f5a0899f56d/scipy-1.2.0-cp36-cp36m-manylinux1_x86_64.whl (26.6MB)\n",
      "Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.6/site-packages (from keras->-r requirements.txt (line 2)) (1.0.5)\n",
      "Collecting pyyaml (from keras->-r requirements.txt (line 2))\n",
      "  Url '/whl' is ignored. It is either a non-existing path or lacks a specific scheme.\n",
      "Downloading https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz (270kB)\n",
      "Requirement already satisfied: h5py in /usr/local/lib/python3.6/site-packages (from keras->-r requirements.txt (line 2)) (2.9.0)\n",
      "Building wheels for collected packages: pyyaml\n",
      "Running setup.py bdist_wheel for pyyaml: started\n",
      "Running setup.py bdist_wheel for pyyaml: finished with status 'done'\n",
      "Stored in directory: /root/.cache/pip/wheels/ad/da/0c/74eb680767247273e2cf2723482cb9c924fe70af57c334513f\n",
      "Successfully built pyyaml\n",
      "Installing collected packages: scipy, pyyaml, keras\n",
      "Successfully installed keras-2.2.4 pyyaml-3.13 scipy-1.2.0\n",
      "Build completed successfully\n"
     ]
    }
   ],
   "source": [
    "!eval $(minikube docker-env) && cd resources/transformer && s2i build -E environment_grpc . seldonio/seldon-core-s2i-python36:0.5-SNAPSHOT seldonio/imagenet_transformer:0.1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Deploy Seldon Intel OpenVINO Graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append(\"../../../notebooks\")\n",
    "from visualizer import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
       " -->\n",
       "<!-- Title: %3 Pages: 1 -->\n",
       "<svg width=\"357pt\" height=\"387pt\"\n",
       " viewBox=\"0.00 0.00 357.00 387.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 383)\">\n",
       "<title>%3</title>\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-383 353,-383 353,4 -4,4\"/>\n",
       "<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"8,-8 8,-371 341,-371 341,-8 8,-8\"/>\n",
       "<text text-anchor=\"middle\" x=\"174.5\" y=\"-355.8\" font-family=\"Times,serif\" font-size=\"14.00\">predictor&#45;0</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;otransformer0 -->\n",
       "<g id=\"node1\" class=\"node\"><title>imagenet&#45;otransformer0</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"200,-340 58,-340 58,-304 200,-304 200,-340\"/>\n",
       "<text text-anchor=\"middle\" x=\"129\" y=\"-318.3\" font-family=\"Times,serif\" font-size=\"14.00\">imagenet&#45;otransformer</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;otransformer0endpoint -->\n",
       "<g id=\"node2\" class=\"node\"><title>imagenet&#45;otransformer0endpoint</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"50\" cy=\"-250\" rx=\"33.5952\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"50\" y=\"-246.3\" font-family=\"Times,serif\" font-size=\"14.00\">GRPC</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;otransformer0&#45;&gt;imagenet&#45;otransformer0endpoint -->\n",
       "<g id=\"edge1\" class=\"edge\"><title>imagenet&#45;otransformer0&#45;&gt;imagenet&#45;otransformer0endpoint</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M109.472,-303.697C98.8828,-294.314 85.6952,-282.629 74.4308,-272.648\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"76.439,-269.751 66.6332,-265.738 71.7966,-274.99 76.439,-269.751\"/>\n",
       "</g>\n",
       "<!-- imagenet&#45;itransformer -->\n",
       "<g id=\"node3\" class=\"node\"><title>imagenet&#45;itransformer</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"240.5,-268 101.5,-268 101.5,-232 240.5,-232 240.5,-268\"/>\n",
       "<text text-anchor=\"middle\" x=\"171\" y=\"-246.3\" font-family=\"Times,serif\" font-size=\"14.00\">imagenet&#45;itransformer</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;otransformer0&#45;&gt;imagenet&#45;itransformer -->\n",
       "<g id=\"edge9\" class=\"edge\"><title>imagenet&#45;otransformer0&#45;&gt;imagenet&#45;itransformer</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M139.382,-303.697C144.265,-295.559 150.187,-285.689 155.579,-276.701\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"158.594,-278.48 160.737,-268.104 152.591,-274.879 158.594,-278.48\"/>\n",
       "</g>\n",
       "<!-- imagenet&#45;itransformerendpoint -->\n",
       "<g id=\"node4\" class=\"node\"><title>imagenet&#45;itransformerendpoint</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"58\" cy=\"-178\" rx=\"33.5952\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"58\" y=\"-174.3\" font-family=\"Times,serif\" font-size=\"14.00\">GRPC</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;itransformer&#45;&gt;imagenet&#45;itransformerendpoint -->\n",
       "<g id=\"edge2\" class=\"edge\"><title>imagenet&#45;itransformer&#45;&gt;imagenet&#45;itransformerendpoint</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M143.357,-231.876C126.554,-221.467 105.096,-208.174 87.8981,-197.521\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"89.6848,-194.511 79.3405,-192.22 85.9984,-200.461 89.6848,-194.511\"/>\n",
       "</g>\n",
       "<!-- imagenet&#45;combiner -->\n",
       "<g id=\"node5\" class=\"node\"><title>imagenet&#45;combiner</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"232.5,-196 109.5,-196 109.5,-160 232.5,-160 232.5,-196\"/>\n",
       "<text text-anchor=\"middle\" x=\"171\" y=\"-174.3\" font-family=\"Times,serif\" font-size=\"14.00\">imagenet&#45;combiner</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;itransformer&#45;&gt;imagenet&#45;combiner -->\n",
       "<g id=\"edge8\" class=\"edge\"><title>imagenet&#45;itransformer&#45;&gt;imagenet&#45;combiner</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M171,-231.697C171,-223.983 171,-214.712 171,-206.112\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"174.5,-206.104 171,-196.104 167.5,-206.104 174.5,-206.104\"/>\n",
       "</g>\n",
       "<!-- imagenet&#45;combinerendpoint -->\n",
       "<g id=\"node6\" class=\"node\"><title>imagenet&#45;combinerendpoint</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"50\" cy=\"-106\" rx=\"33.5952\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"50\" y=\"-102.3\" font-family=\"Times,serif\" font-size=\"14.00\">GRPC</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;combiner&#45;&gt;imagenet&#45;combinerendpoint -->\n",
       "<g id=\"edge3\" class=\"edge\"><title>imagenet&#45;combiner&#45;&gt;imagenet&#45;combinerendpoint</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M141.4,-159.876C123.002,-149.232 99.3914,-135.574 80.7766,-124.805\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"82.493,-121.754 72.0844,-119.776 78.9877,-127.813 82.493,-121.754\"/>\n",
       "</g>\n",
       "<!-- tfserving&#45;proxy1 -->\n",
       "<g id=\"node7\" class=\"node\"><title>tfserving&#45;proxy1</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"208.5,-124 101.5,-124 101.5,-88 208.5,-88 208.5,-124\"/>\n",
       "<text text-anchor=\"middle\" x=\"155\" y=\"-102.3\" font-family=\"Times,serif\" font-size=\"14.00\">tfserving&#45;proxy1</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;combiner&#45;&gt;tfserving&#45;proxy1 -->\n",
       "<g id=\"edge5\" class=\"edge\"><title>imagenet&#45;combiner&#45;&gt;tfserving&#45;proxy1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M167.045,-159.697C165.282,-151.983 163.163,-142.712 161.197,-134.112\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"164.55,-133.073 158.91,-124.104 157.726,-134.633 164.55,-133.073\"/>\n",
       "</g>\n",
       "<!-- tfserving&#45;proxy2 -->\n",
       "<g id=\"node9\" class=\"node\"><title>tfserving&#45;proxy2</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"333.5,-124 226.5,-124 226.5,-88 333.5,-88 333.5,-124\"/>\n",
       "<text text-anchor=\"middle\" x=\"280\" y=\"-102.3\" font-family=\"Times,serif\" font-size=\"14.00\">tfserving&#45;proxy2</text>\n",
       "</g>\n",
       "<!-- imagenet&#45;combiner&#45;&gt;tfserving&#45;proxy2 -->\n",
       "<g id=\"edge7\" class=\"edge\"><title>imagenet&#45;combiner&#45;&gt;tfserving&#45;proxy2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M197.664,-159.876C211.784,-150.808 229.311,-139.552 244.561,-129.759\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"246.71,-132.538 253.233,-124.19 242.927,-126.648 246.71,-132.538\"/>\n",
       "</g>\n",
       "<!-- tfserving&#45;proxy1endpoint -->\n",
       "<g id=\"node8\" class=\"node\"><title>tfserving&#45;proxy1endpoint</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"155\" cy=\"-34\" rx=\"33.5952\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"155\" y=\"-30.3\" font-family=\"Times,serif\" font-size=\"14.00\">GRPC</text>\n",
       "</g>\n",
       "<!-- tfserving&#45;proxy1&#45;&gt;tfserving&#45;proxy1endpoint -->\n",
       "<g id=\"edge4\" class=\"edge\"><title>tfserving&#45;proxy1&#45;&gt;tfserving&#45;proxy1endpoint</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M155,-87.6966C155,-79.9827 155,-70.7125 155,-62.1124\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"158.5,-62.1043 155,-52.1043 151.5,-62.1044 158.5,-62.1043\"/>\n",
       "</g>\n",
       "<!-- tfserving&#45;proxy2endpoint -->\n",
       "<g id=\"node10\" class=\"node\"><title>tfserving&#45;proxy2endpoint</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"280\" cy=\"-34\" rx=\"33.5952\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"280\" y=\"-30.3\" font-family=\"Times,serif\" font-size=\"14.00\">GRPC</text>\n",
       "</g>\n",
       "<!-- tfserving&#45;proxy2&#45;&gt;tfserving&#45;proxy2endpoint -->\n",
       "<g id=\"edge6\" class=\"edge\"><title>tfserving&#45;proxy2&#45;&gt;tfserving&#45;proxy2endpoint</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M280,-87.6966C280,-79.9827 280,-70.7125 280,-62.1124\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"283.5,-62.1043 280,-52.1043 276.5,-62.1044 283.5,-62.1043\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.dot.Digraph at 0x7fd89ef93f28>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_graph(\"seldon_openvino_ensemble.json\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\r\n",
      "    \u001b[34;01m\"apiVersion\"\u001b[39;49;00m: \u001b[33m\"machinelearning.seldon.io/v1alpha2\"\u001b[39;49;00m,\r\n",
      "    \u001b[34;01m\"kind\"\u001b[39;49;00m: \u001b[33m\"SeldonDeployment\"\u001b[39;49;00m,\r\n",
      "    \u001b[34;01m\"metadata\"\u001b[39;49;00m: {\r\n",
      "        \u001b[34;01m\"labels\"\u001b[39;49;00m: {\r\n",
      "            \u001b[34;01m\"app\"\u001b[39;49;00m: \u001b[33m\"seldon\"\u001b[39;49;00m\r\n",
      "        },\r\n",
      "        \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"openvino-model\"\u001b[39;49;00m,\r\n",
      "\t\u001b[34;01m\"namespace\"\u001b[39;49;00m: \u001b[33m\"seldon\"\u001b[39;49;00m\t\r\n",
      "    },\r\n",
      "    \u001b[34;01m\"spec\"\u001b[39;49;00m: {\r\n",
      "        \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"openvino\"\u001b[39;49;00m,\r\n",
      "        \u001b[34;01m\"predictors\"\u001b[39;49;00m: [\r\n",
      "            {\r\n",
      "                \u001b[34;01m\"componentSpecs\"\u001b[39;49;00m: [{\r\n",
      "                    \u001b[34;01m\"spec\"\u001b[39;49;00m: {\r\n",
      "                        \u001b[34;01m\"containers\"\u001b[39;49;00m: [\r\n",
      "                            {\r\n",
      "                                \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"imagenet-itransformer\"\u001b[39;49;00m,\t\t\t\t\r\n",
      "                                \u001b[34;01m\"image\"\u001b[39;49;00m: \u001b[33m\"seldonio/imagenet_transformer:0.1\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"TRACING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"1\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    },\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_AGENT_HOST\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"jaeger-agent\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t]\r\n",
      "                            },\r\n",
      "                            {\r\n",
      "                                \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"imagenet-otransformer\"\u001b[39;49;00m,\t\t\t\t\r\n",
      "                                \u001b[34;01m\"image\"\u001b[39;49;00m: \u001b[33m\"seldonio/imagenet_transformer:0.1\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"TRACING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"1\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    },\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_AGENT_HOST\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"jaeger-agent\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t]\t\t\t\t\r\n",
      "                            },\r\n",
      "                            {\r\n",
      "                                \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"imagenet-combiner\"\u001b[39;49;00m,\t\t\t\t\r\n",
      "                                \u001b[34;01m\"image\"\u001b[39;49;00m: \u001b[33m\"seldonio/imagenet_combiner:0.1\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"TRACING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"1\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    },\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_AGENT_HOST\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"jaeger-agent\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t]\t\t\t\t\r\n",
      "                            },\r\n",
      "                            {\r\n",
      "                                \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"tfserving-proxy1\"\u001b[39;49;00m,\t\t\t\t\r\n",
      "                                \u001b[34;01m\"image\"\u001b[39;49;00m: \u001b[33m\"seldonio/tfserving-proxy:0.2\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"TRACING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"1\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    },\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_AGENT_HOST\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"jaeger-agent\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t]\t\t\t\t\t\t\t\t\r\n",
      "                            },\r\n",
      "                            {\r\n",
      "                                \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"tfserving-proxy2\"\u001b[39;49;00m,\t\t\t\r\n",
      "                                \u001b[34;01m\"image\"\u001b[39;49;00m: \u001b[33m\"seldonio/tfserving-proxy:0.2\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"TRACING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"1\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    },\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_AGENT_HOST\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"jaeger-agent\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t]\t\t\t\t\t\t\t\t\r\n",
      "                            },\r\n",
      "\t\t\t    {\r\n",
      "\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"openvino-model-server1\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"image\"\u001b[39;49;00m: \u001b[33m\"intelaipg/openvino-model-server:0.2\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"command\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    \u001b[33m\"/ie-serving-py/start_server.sh\"\u001b[39;49;00m\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"args\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    \u001b[33m\"ie_serving\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"model\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"--model_path\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"/opt/ml/squeezenet\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"--model_name\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"squeezenet1.1\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"--port\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"8001\"\u001b[39;49;00m\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"ports\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"grpc\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"containerPort\"\u001b[39;49;00m: \u001b[34m8001\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"protocol\"\u001b[39;49;00m: \u001b[33m\"TCP\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"LOG_LEVEL\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"DEBUG\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"resources\"\u001b[39;49;00m: {},\r\n",
      "\t\t\t\t\u001b[34;01m\"volumeMounts\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"modelstore\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"mountPath\"\u001b[39;49;00m: \u001b[33m\"/opt/ml\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t]\r\n",
      "\t\t\t    },\r\n",
      "\t\t\t    {\r\n",
      "\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"openvino-model-server2\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"image\"\u001b[39;49;00m: \u001b[33m\"intelaipg/openvino-model-server:0.2\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"command\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    \u001b[33m\"/ie-serving-py/start_server.sh\"\u001b[39;49;00m\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"args\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    \u001b[33m\"ie_serving\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"model\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"--model_path\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"/opt/ml/squeezenet\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"--model_name\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"squeezenet1.1\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"--port\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[33m\"8002\"\u001b[39;49;00m\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"ports\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"grpc\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"containerPort\"\u001b[39;49;00m: \u001b[34m8002\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"protocol\"\u001b[39;49;00m: \u001b[33m\"TCP\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"LOG_LEVEL\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"DEBUG\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t],\r\n",
      "\t\t\t\t\u001b[34;01m\"resources\"\u001b[39;49;00m: {},\r\n",
      "\t\t\t\t\u001b[34;01m\"volumeMounts\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t    {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"modelstore\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t\u001b[34;01m\"mountPath\"\u001b[39;49;00m: \u001b[33m\"/opt/ml\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t]\r\n",
      "\t\t\t    }\r\n",
      "\t\t\t],\r\n",
      "\t\t\t\u001b[34;01m\"terminationGracePeriodSeconds\"\u001b[39;49;00m: \u001b[34m1\u001b[39;49;00m,\r\n",
      "\t\t\t\u001b[34;01m\"volumes\"\u001b[39;49;00m: [\r\n",
      "\t\t\t    {\r\n",
      "\t\t\t\t\u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"modelstore\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\u001b[34;01m\"volumeSource\"\u001b[39;49;00m: {\r\n",
      "\t\t\t\t    \u001b[34;01m\"persistentVolumeClaim\"\u001b[39;49;00m: {\r\n",
      "\t\t\t\t\t\u001b[34;01m\"claimName\"\u001b[39;49;00m: \u001b[33m\"model-store-pvc\"\u001b[39;49;00m\r\n",
      "\t\t\t\t    }\r\n",
      "\t\t\t\t}\r\n",
      "\t\t\t    }\r\n",
      "\t\t\t]\r\n",
      "\t\t    }\r\n",
      "\t\t}],\r\n",
      "                \u001b[34;01m\"graph\"\u001b[39;49;00m: {\r\n",
      "\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"imagenet-otransformer\"\u001b[39;49;00m,\r\n",
      "\t\t    \u001b[34;01m\"endpoint\"\u001b[39;49;00m: { \u001b[34;01m\"type\"\u001b[39;49;00m : \u001b[33m\"GRPC\"\u001b[39;49;00m },\r\n",
      "\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m: \u001b[33m\"OUTPUT_TRANSFORMER\"\u001b[39;49;00m,\r\n",
      "\t\t    \u001b[34;01m\"children\"\u001b[39;49;00m: [\r\n",
      "\t\t\t{\r\n",
      "\r\n",
      "\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"imagenet-itransformer\"\u001b[39;49;00m,\r\n",
      "\t\t    \u001b[34;01m\"endpoint\"\u001b[39;49;00m: { \u001b[34;01m\"type\"\u001b[39;49;00m : \u001b[33m\"GRPC\"\u001b[39;49;00m },\r\n",
      "\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m: \u001b[33m\"TRANSFORMER\"\u001b[39;49;00m,\r\n",
      "\t\t    \u001b[34;01m\"children\"\u001b[39;49;00m: [\r\n",
      "\t\t\t{\r\n",
      "\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"imagenet-combiner\"\u001b[39;49;00m,\r\n",
      "\t\t\t    \u001b[34;01m\"endpoint\"\u001b[39;49;00m: { \u001b[34;01m\"type\"\u001b[39;49;00m : \u001b[33m\"GRPC\"\u001b[39;49;00m },\r\n",
      "\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m: \u001b[33m\"COMBINER\"\u001b[39;49;00m,\r\n",
      "\t\t\t    \u001b[34;01m\"children\"\u001b[39;49;00m: [\r\n",
      "\t\t\t\t{\r\n",
      "\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"tfserving-proxy1\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[34;01m\"endpoint\"\u001b[39;49;00m: { \u001b[34;01m\"type\"\u001b[39;49;00m : \u001b[33m\"GRPC\"\u001b[39;49;00m },\r\n",
      "\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m: \u001b[33m\"MODEL\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[34;01m\"children\"\u001b[39;49;00m: [],\r\n",
      "\t\t\t\t    \u001b[34;01m\"parameters\"\u001b[39;49;00m:\r\n",
      "\t\t\t\t    [\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"grpc_endpoint\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"localhost:8001\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t},\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"model_name\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"squeezenet1.1\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t},\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"model_output\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"prob\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t},\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"model_input\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"data\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t}\r\n",
      "\t\t\t\t    ]\r\n",
      "\t\t\t\t},\r\n",
      "\t\t\t\t{\r\n",
      "\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"tfserving-proxy2\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[34;01m\"endpoint\"\u001b[39;49;00m: { \u001b[34;01m\"type\"\u001b[39;49;00m : \u001b[33m\"GRPC\"\u001b[39;49;00m },\r\n",
      "\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m: \u001b[33m\"MODEL\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t    \u001b[34;01m\"children\"\u001b[39;49;00m: [],\r\n",
      "\t\t\t\t    \u001b[34;01m\"parameters\"\u001b[39;49;00m:\r\n",
      "\t\t\t\t    [\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"grpc_endpoint\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"localhost:8002\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t},\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"model_name\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"squeezenet1.1\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t},\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"model_output\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"prob\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t},\r\n",
      "\t\t\t\t\t{\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m:\u001b[33m\"model_input\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"type\"\u001b[39;49;00m:\u001b[33m\"STRING\"\u001b[39;49;00m,\r\n",
      "\t\t\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m:\u001b[33m\"data\"\u001b[39;49;00m\r\n",
      "\t\t\t\t\t}\r\n",
      "\t\t\t\t    ]\r\n",
      "\t\t\t\t}\t\t\t\r\n",
      "\t\t\t    ]\r\n",
      "\t\t\t}\r\n",
      "\t\t    ]\r\n",
      "\t\t\t}\r\n",
      "\t\t    ]\r\n",
      "\t\t},\r\n",
      "                \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"openvino\"\u001b[39;49;00m,\r\n",
      "                \u001b[34;01m\"replicas\"\u001b[39;49;00m: \u001b[34m1\u001b[39;49;00m,\r\n",
      "\t\t\u001b[34;01m\"srvOrchSpec\"\u001b[39;49;00m : {\r\n",
      "\t\t    \u001b[34;01m\"env\"\u001b[39;49;00m: [\r\n",
      "\t\t\t{\r\n",
      "\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"TRACING\"\u001b[39;49;00m,\r\n",
      "\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"1\"\u001b[39;49;00m\r\n",
      "\t\t\t},\r\n",
      "\t\t\t{\r\n",
      "\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_AGENT_HOST\"\u001b[39;49;00m,\r\n",
      "\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"jaeger-agent\"\u001b[39;49;00m\r\n",
      "\t\t\t},\r\n",
      "\t\t\t{\r\n",
      "\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_AGENT_PORT\"\u001b[39;49;00m,\r\n",
      "\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"5775\"\u001b[39;49;00m\r\n",
      "\t\t\t},\r\n",
      "\t\t\t{\r\n",
      "\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_SAMPLER_TYPE\"\u001b[39;49;00m,\r\n",
      "\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"const\"\u001b[39;49;00m\r\n",
      "\t\t\t},\r\n",
      "\t\t\t{\r\n",
      "\t\t\t    \u001b[34;01m\"name\"\u001b[39;49;00m: \u001b[33m\"JAEGER_SAMPLER_PARAM\"\u001b[39;49;00m,\r\n",
      "\t\t\t    \u001b[34;01m\"value\"\u001b[39;49;00m: \u001b[33m\"1\"\u001b[39;49;00m\r\n",
      "\t\t\t}\r\n",
      "\t\t    ]\t\t\t\t\r\n",
      "\t\t}\r\n",
      "            }\r\n",
      "        ]\r\n",
      "    }\r\n",
      "}\r\n"
     ]
    }
   ],
   "source": [
    "!pygmentize seldon_openvino_ensemble.json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "persistentvolume/hostpath-pvc created\n",
      "persistentvolumeclaim/model-store-pvc created\n",
      "seldondeployment.machinelearning.seldon.io/openvino-model created\n"
     ]
    }
   ],
   "source": [
    "!kubectl apply -f pvc.json\n",
    "!kubectl apply -f seldon_openvino_ensemble.json"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Serve Requests\n",
    "\n",
    "**Ensure you port forward ambassador:**\n",
    "\n",
    "```\n",
    "kubectl port-forward $(kubectl get pods -n seldon -l service=ambassador -o jsonpath='{.items[0].metadata.name}') -n seldon 8003:8080\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from seldon_core.proto import prediction_pb2\n",
    "from seldon_core.proto import prediction_pb2_grpc\n",
    "import grpc\n",
    "\n",
    "def grpc_request_ambassador(deploymentName,namespace,endpoint=\"localhost:8004\",data=None):\n",
    "    datadef = prediction_pb2.DefaultData(\n",
    "                names = 'x',\n",
    "                tftensor = tf.make_tensor_proto(data)\n",
    "            )\n",
    "    request = prediction_pb2.SeldonMessage(data = datadef)\n",
    "    channel = grpc.insecure_channel(endpoint)\n",
    "    stub = prediction_pb2_grpc.SeldonStub(channel)\n",
    "    if namespace is None:\n",
    "        metadata = [('seldon',deploymentName)]\n",
    "    else:\n",
    "        metadata = [('seldon',deploymentName),('namespace',namespace)]\n",
    "    response = stub.Predict(request=request,metadata=metadata)\n",
    "    return response\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(227, 227, 3)\n",
      "129.07299999999998\n",
      "Eskimo dog, husky\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd880083208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "from keras.applications.imagenet_utils import preprocess_input, decode_predictions\n",
    "from keras.preprocessing import image\n",
    "import sys\n",
    "import json\n",
    "import matplotlib.pyplot as plt\n",
    "import datetime\n",
    "API_AMBASSADOR=\"localhost:8003\"\n",
    "\n",
    "def getImage(path):\n",
    "    img = image.load_img(path, target_size=(227, 227))\n",
    "    x = image.img_to_array(img)\n",
    "    plt.imshow(x/255.)\n",
    "    x = np.expand_dims(x, axis=0)\n",
    "    x = preprocess_input(x)\n",
    "    return x\n",
    "\n",
    "def getImageRaw(path):\n",
    "    img = image.load_img(path, target_size=(227, 227))\n",
    "    x = image.img_to_array(img)\n",
    "    plt.imshow(x/255.)\n",
    "    return x\n",
    "\n",
    "#X = getImage(\"car.png\")\n",
    "#X = X.transpose((0,3,1,2))\n",
    "\n",
    "#X = getImageRaw(\"car.png\")\n",
    "X = getImageRaw(\"dog.jpeg\")\n",
    "print(X.shape)\n",
    "start_time = datetime.datetime.now()\n",
    "response = grpc_request_ambassador(\"openvino-model\",\"seldon\",API_AMBASSADOR,data=X)\n",
    "end_time = datetime.datetime.now()\n",
    "duration = (end_time - start_time).total_seconds() * 1000\n",
    "print(duration)\n",
    "\n",
    "print(response.strData)\n",
    "\n",
    "#result = tf.make_ndarray(response.data.tftensor)   \n",
    "#result = result.reshape(1,1000)\n",
    "\n",
    "#with open('imagenet_classes.json') as f:\n",
    "#    cnames = eval(f.read())\n",
    "#\n",
    "#    single_result = result[[0],...]\n",
    "#    ma = np.argmax(single_result)\n",
    "#    print(\"\\t\",0, cnames[ma])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
